package com.shell.governor.modules.controller;

import com.shell.bee.base.annotation.Logging;
import com.shell.bee.base.utils.StringUtil;
import com.shell.bee.entity.mvc.RetMsg;
import com.shell.bee.file.service.PubFileUploadService;
import com.shell.bee.mvc.controller.BaseController;
import com.shell.framework.utils.ParameterHelper;
import com.shell.governor.modules.po.PubParameter;
import com.shell.governor.modules.service.PubParameterService;
import com.shell.governor.modules.vo.ParameterVo;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class PubParameterController extends BaseController {
	@Autowired
	private PubParameterService parameterService;
	@Resource(name = "${file.updownload.service}")
	private PubFileUploadService pubFileUploadService;

	@RequestMapping
	@Logging(module = "��������", methods = "������������")
	protected List<ParameterVo> getParameterList(String bizCode, String parmRlatId, String editorId) {
		return this.parameterService.getParameterList(bizCode, parmRlatId, editorId);
	}

	@RequestMapping
	@Logging(module = "��������", methods = "������������")
	public RetMsg saveParam(ParameterVo param) {
		this.parameterService.updateParam(param);
		return new RetMsg("success", "����������");
	}

	@RequestMapping
	@Logging(module = "��������", methods = "��������")
	public ParameterVo getParameter(String bizType, String paramCode, String parmRlatId, String editorId) {
		return this.parameterService.getParameter(bizType, paramCode, parmRlatId, editorId);
	}

	@RequestMapping
	@Logging(module = "��������", methods = "��������")
	public ParameterVo getCommonParameter(String paramCode) {
		return ParameterHelper.getCommonParameter(paramCode);
	}

	@RequestMapping
	@Logging(module = "������������", methods = "������������������")
	public RetMsg deleteFileParams(String id) {
		int count = this.parameterService.deleteFileParams(id);
		if (count > 0) {
			return initRetMsg("success", "����������������������");
		}
		return initRetMsg("error", "����������");
	}

	@RequestMapping(value = { "/auth/get-cust-phone" }, method = {
			org.springframework.web.bind.annotation.RequestMethod.POST })
	@Logging(module = "������������", methods = "����������������������������")
	public String getCustPhone() {
		PubParameter parameter = this.parameterService.getParameter("CUSTSER_QQ", "PT_0", "");
		if ((parameter != null) && (!StringUtil.emptyAndNull(parameter.getParmValue()))) {
			return parameter.getParmValue();
		}
		return null;
	}

	@RequestMapping(value = { "/auth/get-plat-params" }, method = {
			org.springframework.web.bind.annotation.RequestMethod.POST })
	@Logging(module = "获取平台参数", methods = "没有登录时，获取平台参数")
	public Map<String, Object> getPlatParams() {
		List<ParameterVo> pltParams = this.parameterService.getParameterList("3,5", "PT_0", "");
		Map<String, Object> result = new HashMap();
		for (ParameterVo parameterVo : pltParams) {
			if (!StringUtil.emptyAndNull(parameterVo.getParmValue())) {
				result.put(parameterVo.getParmCode(), parameterVo.getParmValue());
			}
		}
		return result;
	}
}
